%%%%%%%%@@@@###*********++++++*===-*#%%#@@%%#######***###%%%%%%%%%%%%
%%%%%%#%%#%##*********+++=+****====-=+**%@%%%%##*+***%%%%%###%%%%%%%%
###%%%****+**#*#***+++++++++==========*#%@%%%%#%##**#%%%%%%%%###%%%%%
****++*#*#%%##**+++**+++++===--======+#**%%%%%%%%######%#%%%%%%%###%%
#%##*+=#@@@@%#+*++++==---------====+#%%#*+#%%%%%%###%%###%%%%%%%@%%%%
%%%###**#%%%#===--------------==+*%%###*++%%%%%%%%####%%##%#%%%%@@@@@
******#%#*=+=-------========++*##%#+*##*++#%%%%%%%######%%#%%%%%@@@@@
*#*++***+==+========+++++***####%%**#%###****%%%##**####%%#%%%%%%@@@@
#*######=-=====++++***********##%#####%%%%##*###**+*#####%%%%%%%@@@@@
%%#%%*##*+=+++++**********##****%###%*%%%%%%#*%%%#*+++**##%%%%%%@@@@@
####+=++=+++++*##****************###%**#%%%%%***%%%%%#%######%%%@@@@@
#**+++++++******#*#***###***+++***######%%%%%**########**##*==+#%@@%%
+====++*****+++******************#####%%%%%%%%%######%###%#*+=====+*#
===+**************##############*##*#*###%%%%%%%%%%%%%%%%%%%%#+=====+
+****######***#####%#%%#######%####################%%%%%%%%%%%#*+===+
#############%%%%%%%%%%%##%%%%%%%%%%%%%%%%#######################*+=+
%########%%%%%%%%#%#%%%%###%%%%%%#%%%%%%%%%%%%%%%%%%%#######***###***
######%%%%%%%%%%%%#%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%######*******#
%%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%#%##%###################**##******#
%%%%%%%%%%%%%%%%%%%%#%%%%############################************#**#
%%%%%%%%%%%%%#####%#############################*########***********#
%%####%###########################################**########********#
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%